package com.spring.demo.spring_boot.base.mapper;

import com.github.pagehelper.ISelect;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

/**
 * 
 * @author 王辉阳
 * @date 2017年8月2日 下午4:06:48
 * @description 抽象Mapper，所有mapper继承该接口可拥得分页查询的能力
 * @param <T>
 */
@SuppressWarnings("all")
public interface BaseMapper<T> {
	/**
	 * 
	 * @param queryListISelect
	 *            分页查询接口实例
	 * @param pageInfo
	 *            分页对象
	 * @return 分页对象，包含页码，一共多少页，一共多少条数据，是否存在上一页下一页，分页的数据集等等
	 */
	default PageInfo<T> findPage(ISelect queryListISelect, PageInfo<T> pageInfo) {
		if (pageInfo == null) {
			pageInfo = new PageInfo<T>();
			pageInfo.setPageSize(10);
		}

		// 也可以直接返回PageInfo，注意doSelectPageInfo方法和doSelectPage
		pageInfo = PageHelper.startPage(pageInfo.getPageNum(), pageInfo.getPageSize())
				.doSelectPageInfo(queryListISelect);

		return pageInfo;
	}

}
